<%-- 
    Document   : RegistrarVotante
    Created on : 6/11/2013, 10:06:25 AM
    Author     : ldorrego
--%>
<%@page import="co.dzgroup.votacion.util.Mensaje"%>
<%@page import="co.dzgroup.votacion.util.CorreoElectronico"%>
<%@page import="co.dzgroup.votacion.modelo.Departamento"%>
<%@page import="co.dzgroup.votacion.modelo.Municipio"%>
<%@page import="co.dzgroup.votacion.modelo.Comuna"%>
<%@page import="co.dzgroup.votacion.modelo.Barrio"%>
<%@page import="co.dzgroup.votacion.modelo.Persona"%>
<%@page import="co.dzgroup.votacion.modelo.Votante"%>
<%@page import="co.dzgroup.votacion.util.Formato"%>
<%@page import="co.dzgroup.votacion.implementacion.ParametrizacionEjecucion"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <%
    String logout="";
    logout=Formato.cambiarSiEsNull(request.getParameter("logg"), "");

    if(logout.equals("logout")){
        response.sendRedirect("login.jsp");
    }

    ParametrizacionEjecucion parametrizacionEjecucion=new ParametrizacionEjecucion();
    String mensaje="";
    //Recibimos los parametros
    String identificacion=Formato.cambiarSiEsNull(request.getParameter("identificacion"),"");
    String nombre=Formato.cambiarSiEsNull(request.getParameter("nombre"),"");
    String fecha=Formato.cambiarSiEsNull(request.getParameter("fecha"),"");
    String txtBarrio=Formato.cambiarSiEsNull(request.getParameter("barrio"),"");
    String direccion=Formato.cambiarSiEsNull(request.getParameter("direccion"),"");
    String telefono=Formato.cambiarSiEsNull(request.getParameter("telefono"),"");
    String correoElectronico=Formato.cambiarSiEsNull(request.getParameter("correo_electronico"),"");
    //Se genera el codigo de logueo por defecto de 6 caracteres
    String codigoLogueo=parametrizacionEjecucion.getCadenaAlfanumAleatoria(6);
    //Validamos que los datos obligatorios se hayan ingresado
    if(!identificacion.equals("") && !nombre.equals("") &&
       !fecha.equals("") && !txtBarrio.equals("") &&
       !correoElectronico.equals("") && !codigoLogueo.equals("")){
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date fecha_nacimiento = df.parse(fecha);
        Barrio barrio=new Barrio();
        barrio.setBarrioId(Integer.parseInt(txtBarrio));
        Votante votante=new Votante(nombre,identificacion,fecha_nacimiento,direccion,telefono,
                correoElectronico,null,barrio);
        votante.setCodigoLogueo(codigoLogueo);
        //Validamos que la edad del votante sea mayor o igual a 18 años de edad
        if(Formato.edadEnAnos(fecha_nacimiento)>=18){
            //Si se guardo correctamente se muestra el respectivo mensaje
            if(parametrizacionEjecucion.guardarVotante(votante)){
                mensaje="El votante se registró correctamente, su código fue enviado al correo electronico";
                CorreoElectronico correo=new CorreoElectronico();
                correo.enviarCorreo(Mensaje.getAsunto(),
                        Mensaje.getMensaje(nombre, identificacion, codigoLogueo), correoElectronico);
            }
        }else{
            mensaje="El votante debe tener 18 o más años para que se pueda regsitrar";
        }
    }
    %>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type='text/JavaScript' src='../js/scw.js'></script>
        <title>.: DzGroup Votación Online :.</title>
        <script language="Java" type="text/JavaScript">

            /**
             * Función para cargar los municipios
             */
            function municipios(){
               document.getElementById("municipio").options.length=0;
               document.getElementById("comuna").options.length=0;
               document.getElementById("barrio").options.length=0;
               var a=document.getElementById("departamento").value;
               <%
                //Consultamos el listado de los municipios
                 List<Municipio> municipio=new ArrayList<Municipio>();
                 municipio=parametrizacionEjecucion.consultarMunicipio();
                %>
                document.getElementById("municipio").options[document.getElementById("municipio").options.length]=new Option('Seleccione una opción','');
                <%
                  for(int pos=0;pos<municipio.size();pos++){
                %>
                    if(a==<%=municipio.get(pos).getDepartamento().getDepartamentoId()%>){
                        document.getElementById("municipio").options[document.getElementById("municipio").options.length]=new Option('<%=municipio.get(pos).getNombre()%>','<%=municipio.get(pos).getMunicipioId()%>');
                    }
                <%}%>
            }
            /**
             * Función para cargar las comunas de acuerdo al barrio selecciónado
             */
            function comunas(){
               document.getElementById("comuna").options.length=0;
               document.getElementById("barrio").options.length=0;
               var a=document.getElementById("municipio").value;              
               <%
                 List<Comuna> comuna=new ArrayList<Comuna>();
                 comuna=parametrizacionEjecucion.consultarComuna();
               %>
                document.getElementById("comuna").options[document.getElementById("comuna").options.length]=new Option('Seleccione una opción','');
                <%
                  for(int pos=0;pos<comuna.size();pos++){%>
                    if(a==<%=comuna.get(pos).getMunicipio().getMunicipioId()%>){
                       document.getElementById("comuna").options[document.getElementById("comuna").options.length]=new Option('<%=comuna.get(pos).getNombre()%>','<%=comuna.get(pos).getComunaId()%>');
                    }
                <%}%>
            }

            /**
             * Función para consultar los barrios de acuerdo a la comuna seleccionada
             */
            function barrios(){
               document.getElementById("barrio").options.length=0;
               var a=document.getElementById("comuna").value;
               <%
                 List<Barrio> barrio=new ArrayList<Barrio>();
                 barrio=parametrizacionEjecucion.consultarBarrio();
               %>
                document.getElementById("barrio").options[document.getElementById("barrio").options.length]=new Option('Seleccione una opción','');
                <%
                  for(int pos=0;pos<barrio.size();pos++){
                %>
                   if(a==<%=barrio.get(pos).getComuna().getComunaId()%>){
                       document.getElementById("barrio").options[document.getElementById("barrio").options.length]=new Option('<%=barrio.get(pos).getNombre()%>','<%=barrio.get(pos).getBarrioId()%>');
                   }
                <%}%>
            }

            /**
             * Función para validar los datos del formulario y enviar los datos
             * del votante para que se guarden
             */
            function guardarVotante(form){
                var esCorrecto=true;
                if(form.identificacion.value==''){
                    alert('Debe ingresar el documento de identidad!!');
                    esCorrecto=false;
                }else if(form.nombre.value==''){
                    alert('Debe ingresar el nombre!!');
                    esCorrecto=false;
                }else if(form.fecha.value==''){
                    alert('Debe seleccionar la fecha de nacimiento!!');
                    esCorrecto=false;
                }else if(form.municipio.value==''){
                    alert('Debe seleccionar el municipio!!');
                    esCorrecto=false;
                }else if(form.comuna.value==''){
                    alert('Debe seleccionar la comuma!!');
                    esCorrecto=false;
                }else if(form.barrio.value==''){
                    alert('Debe seleccionar el barrio!!');
                    esCorrecto=false;
                }else if(form.correo_electronico.value==''){
                    alert('Debe ingresar el correo electronico!!');
                    esCorrecto=false;
                }else if(isNaN(form.identificacion.value)){
                    alert('El documento de identidad debe ser númerico!!');
                    esCorrecto=false;
                }else if ((/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(form.correo_electronico.value))){
                    alert('El formato del correo electronico es incorrecto!!');
                    esCorrecto=false;
                }
                
                if(esCorrecto){
                    form.submit();
                }

            }

            /**
             * Función para mostrar los mensajes de alert para el evento
             * onload del tag body de la página
             */
            function mostrarMensaje(mensaje){
                if(mensaje!=''){
                    alert(mensaje);
                }
            }
            /**
             * Metodo que regresa al menu alterior
             */
            function cancelar(form) {
                form.logg.value='logout';
                form.submit();
            }
        </script>        
    </head>
    <jsp:include page="head.jsp" flush="true|false" />
    <body onload="mostrarMensaje('<%=mensaje%>');">
        <form name="formulario" method="post" action="registrarVotante.jsp">
            <input type="hidden" name="logg">
            <center>
                <br>
                <table border="0">
                    <tr>
                        <td colspan="2" align="center"><strong><font size="5">Registrar Votante</font></strong></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center"><br></td>
                    </tr>
                    <tr>
                        <td><strong>Documento de Identidad (<font color="red">*</font>)</strong></td>
                        <td><input type="text" name="identificacion" id="identificacion" maxlength="12" size="10"></td>
                    </tr>
                    <tr>
                        <td><strong>Nombre (<font color="red">*</font>)</strong></td>
                        <td><input type="text" name="nombre" id="nombre"></td>
                    </tr>
                    <tr>
                        <td><strong>Fecha de Nacimiento (<font color="red">*</font>)</strong></td>
                        <td>
                            <input id="fecha" name="fecha" onclick='scwShow(this,event);' readonly size="8"/>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Departamento (<font color="red">*</font>)</strong></td>
                        <td>
                            <select name="departamento" id="departamento" onchange="municipios()">
                                <option value="">Seleccione una opción</option>
                            <%
                                 List<Departamento> departamento=new ArrayList<Departamento>();
                                 departamento=parametrizacionEjecucion.consultarDepartamento();
                                 for(int pos=0;pos<departamento.size();pos++){
                                     out.println("<option value="+departamento.get(pos).getDepartamentoId()+"> "+departamento.get(pos).getNombre()+" </option>");
                                 }
                            %>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Municipio (<font color="red">*</font>)</strong></td>
                        <td>
                            <select name="municipio" id="municipio" onchange="comunas()">
                                <option></option>                   
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Comuna (<font color="red">*</font>)</strong></td>
                        <td>
                            <select name="comuna" id="comuna" onchange="barrios()">
                                <option ></option>
                                
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Barrio (<font color="red">*</font>)</strong></td>
                        <td>
                            <select name="barrio" id="barrio">
                                <option ></option>                                
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Email (<font color="red">*</font>)</strong></td>
                        <td><input type="text" name="correo_electronico" id="correo_electronico"></td>
                    </tr>
                     <tr>
                        <td><strong>Dirección</strong></td>
                        <td><input type="text" name="direccion" id="direccion"></td>
                    </tr>
                     <tr>
                        <td><strong>Teléfono</strong></td>
                        <td><input type="text" name="telefono" id="telefono"></td>
                    </tr>
                    <tr>
                        <td align="center" colspan="2"><input type="button" value="Guardar" onclick="guardarVotante(this.form);"><input type="reset" value="Limpiar"> <input type="button" value="Volver" onclick="cancelar(this.form);"></td>
                    </tr>
                </table>
            </center>
        </form>
    </body>
    <br><br>
    <jsp:include page="foot.jsp" flush="true|false" />
</html>
